
package com.udc.medLine.transaction;

import java.util.List;

import com.udc.medLine.entity.CondicaoVO;
import com.udc.medLine.entity.PrincipioAtivo;
import com.udc.medLine.factory.FactoryPrincipioAtivo;
import com.udc.medLine.persistence.Bd;

public class TransactionPrincipioAtivo {

	private PrincipioAtivo principioAtivo;
	private List listPrincipioAtivo;
	private Bd banco;
	
	/**
	 * 
	 */
	public TransactionPrincipioAtivo() {
		super();
		principioAtivo = new PrincipioAtivo();
		try{
			banco = Bd.getInstance();
		}
		catch(Exception e){
			e.printStackTrace();
		}
		// TODO Stub de construtor gerado automaticamente
	}

	public PrincipioAtivo getPrincipioAtivo() {
		return principioAtivo;
	}

	public void setPrincipioAtivo(PrincipioAtivo new_principioAtivo) {
		this.principioAtivo = new_principioAtivo;
	}

	public void remover(PrincipioAtivo nPrincipioAtivo) throws Exception {
		banco.beginTransaction();
			FactoryPrincipioAtivo factory = new FactoryPrincipioAtivo();
			principioAtivo.setId(nPrincipioAtivo.getId());
			factory.setPrincipioAtivo(principioAtivo);
			factory.delete();
		banco.commit();
	}

	public void inserir(PrincipioAtivo nPrincipioAtivo) throws Exception {
		banco.beginTransaction();
			FactoryPrincipioAtivo factory = new FactoryPrincipioAtivo();			
			principioAtivo.setNome(nPrincipioAtivo.getNome());
			factory.setPrincipioAtivo(principioAtivo);
			factory.insert();
		banco.commit();
	}

	public void atualizar(PrincipioAtivo nPrincipioAtivo) throws Exception {
		banco.beginTransaction();
			FactoryPrincipioAtivo factory = new FactoryPrincipioAtivo();
			principioAtivo.setId(nPrincipioAtivo.getId());
			principioAtivo.setNome(nPrincipioAtivo.getNome());
			factory.setPrincipioAtivo(principioAtivo);
			factory.update();
		banco.commit();
	}


	public void obterPrincipioAtivo(String campo, String valor) throws Exception{
		banco.beginTransaction();
			FactoryPrincipioAtivo factory = new FactoryPrincipioAtivo();
			factory.setPrincipioAtivo(new PrincipioAtivo());
			listPrincipioAtivo = factory.getPrincipioAtivo(campo,valor);
		banco.commit();
	}
	
	public void obterListaPrincipioAtivo() throws Exception{
		banco.beginTransaction();
			FactoryPrincipioAtivo factory = new FactoryPrincipioAtivo();
			factory.setPrincipioAtivo(new PrincipioAtivo());
			listPrincipioAtivo = factory.getListaPrincipioAtivo();
		banco.commit();
	}
	
	public void obterPrincipioAtivo(PrincipioAtivo nPrincipioAtivo) throws Exception{
		banco.beginTransaction();
			FactoryPrincipioAtivo factory = new FactoryPrincipioAtivo();
			principioAtivo.setId(nPrincipioAtivo.getId());
			factory.setPrincipioAtivo(principioAtivo);
			principioAtivo = factory.obterPrincipioAtivo();
		banco.commit();
	}
	
	/**
	 * @return
	 */
	public List getListPrincipioAtivo() {
		return listPrincipioAtivo;
	}

	/**
	 * @param list
	 */
	public void setListPrincipioAtivo(List list) {
		listPrincipioAtivo = list;
	}

	public List<PrincipioAtivo> search(CondicaoVO condicao) throws Exception {
		banco.beginTransaction();
		FactoryPrincipioAtivo factory = new FactoryPrincipioAtivo();
		listPrincipioAtivo = factory.search(condicao);
		banco.commit();
		return listPrincipioAtivo;
	}

}
